home *** CD-ROM | disk | FTP | other *** search
/ GameStar 1998 November (Bonus) / GAMESTAR11B.ISO / ENCYC99 / MM / T620277A.DCR / Scripts_4_Class PictButton.ls < prev    next >
Encoding:
Text File  |  1998-06-29  |  2.2 KB  |  108 lines

  1. property objectSprite, objectRect, buttonState, mouseIsDown, mouseIn, buttonIsOn, onPict, upPict, downPict, offPict, sendsEvent, eventCatcher
  2.  
  3. on mouseEvent me, xEvent, xLoc
  4.   case xEvent of
  5.     #mouseEnter:
  6.       if mouseIsDown then
  7.         set buttonState to #down
  8.       else
  9.         set buttonState to #up
  10.       end if
  11.       set mouseIn to 1
  12.     #mouseDown:
  13.       if buttonIsOn then
  14.         catchEvent(eventCatcher, sendsEvent)
  15.       end if
  16.       set buttonState to #down
  17.       set mouseIsDown to 1
  18.     #mouseUp:
  19.       if mouseIn then
  20.         set buttonState to #up
  21.       else
  22.         set buttonState to #on
  23.       end if
  24.       set mouseIsDown to 0
  25.       catchEvent(eventCatcher, #mouseUp)
  26.     #mouseGone, #mouseLeave:
  27.       set buttonState to #on
  28.       set mouseIsDown to 0
  29.       set mouseIn to 0
  30.       catchEvent(eventCatcher, #mouseUp)
  31.   end case
  32.   if buttonIsOn then
  33.     swapImage(me)
  34.   end if
  35. end
  36.  
  37. on areYouThere me, xLoc
  38.   if inside(xLoc, objectRect) then
  39.     return 1
  40.   end if
  41.   return 0
  42. end
  43.  
  44. on turnON me
  45.   if not buttonIsOn then
  46.     set buttonIsOn to 1
  47.     swapImage(me)
  48.   end if
  49. end
  50.  
  51. on turnOff me
  52.   if buttonIsOn then
  53.     set buttonIsOn to 0
  54.     set the member of sprite objectSprite to offPict
  55.   end if
  56. end
  57.  
  58. on new me, xSprite
  59.   set objectSprite to xSprite
  60.   set objectRect to the rect of sprite objectSprite
  61.   set buttonIsOn to 1
  62.   set mouseIn to 0
  63.   puppetSprite(objectSprite, 1)
  64.   return me
  65. end
  66.  
  67. on setPicts me, pictList
  68.   set onPict to getAt(pictList, 1)
  69.   set upPict to getAt(pictList, 2)
  70.   set downPict to getAt(pictList, 3)
  71.   set offPict to getAt(pictList, 4)
  72.   swapImage(me)
  73. end
  74.  
  75. on linkUp me, xCatcher, xSymbol
  76.   set eventCatcher to xCatcher
  77.   set sendsEvent to xSymbol
  78. end
  79.  
  80. on subscribe me, xCursor
  81.   subscribe(xCursor, me)
  82. end
  83.  
  84. on unsubscribe me, xCursor
  85.   unsubscribe(xCursor, me)
  86. end
  87.  
  88. on destroy me
  89.   puppetSprite(objectSprite, 0)
  90.   set me to 0
  91. end
  92.  
  93. on swapImage me
  94.   if buttonIsOn then
  95.     case buttonState of
  96.       #on:
  97.         set the member of sprite objectSprite to onPict
  98.       #up:
  99.         set the member of sprite objectSprite to upPict
  100.       #down:
  101.         set the member of sprite objectSprite to downPict
  102.     end case
  103.   else
  104.     set the member of sprite objectSprite to offPict
  105.   end if
  106.   updateStage()
  107. end
  108.